float4x4 World;
float4x4 View;
float4x4 Projection;

TextureCube skybox : register(t0);

SamplerState s : register(s0);

struct VertexShaderInput
{
	float4 Position : POSITION0;
	float3 normal	: NORMAL;
};

struct VertexShaderOutput
{
	float4 Position			: POSITION0;
	float4 worldPosition	: COLOR0;
	float3 normal			: NORMAL;
};

struct ps_in
{
	float4 position	: COLOR0;
	float3 normal	: NORMAL;
	float2 uv		: TEXCOORD;
};

VertexShaderOutput VertexShaderFunction(VertexShaderInput input)
{
	VertexShaderOutput output;

	float4 worldPosition = mul(input.Position, World);
		output.normal = mul(float4(input.normal, 0.0f), World);
	output.worldPosition = input.Position;
	float4 viewPosition = mul(worldPosition, View);
		output.Position = mul(viewPosition, Projection);

	return output;
}

float4 PixelShaderFunction(ps_in input) : COLOR0
{
	return float4(1.f, 0.f, 0.f, 1.f);
}

technique Technique1
{
	pass Pass1
	{
		// TODO: set renderstates here.

		VertexShader = compile vs_3_0 VertexShaderFunction();
		PixelShader = compile ps_3_0 PixelShaderFunction();
	}
}
